package util;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * 时间工具类
 *
 * @author zhanglinfeng
 * @date create in 2022/9/20 11:48
 */
public class DateUtil {
    public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
    public static final String YYYY_MM_DD = "yyyy-MM-dd";
    public static final String YYYYMMDD = "yyyyMMdd";
    public static final String YYYY_MM = "yyyy-MM";
    public static final String YYYYMM = "yyyyMM";
    public static final String HH_MM_SS = "HH:mm:ss";
    public static final String HHMMSS = "HHmmss";

    /**
     * 获取当前时间字符串
     *
     * @param formatType 格式
     * @return String
     */
    public static String nowStr(String formatType) {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(formatType));
    }

    /**
     * 格式化时间
     *
     * @param formatType 格式
     * @return String
     */
    public static String format(LocalDateTime localDateTime, String formatType) {
        return localDateTime.format(DateTimeFormatter.ofPattern(formatType));
    }

    /**
     * 格式化时间
     *
     * @param formatType 格式
     * @return String
     */
    public static String format(LocalDate localDate, String formatType) {
        return localDate.format(DateTimeFormatter.ofPattern(formatType));
    }

    /**
     * 格式化时间
     *
     * @param formatType 格式
     * @return String
     */
    public static String format(LocalTime localTime, String formatType) {
        return localTime.format(DateTimeFormatter.ofPattern(formatType));
    }

    /**
     * 格式化时间
     *
     * @param formatType 格式
     * @return String
     */
    public static String format(Date date, String formatType) {
        return new SimpleDateFormat(formatType).format(date);
    }

}
